home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
networking
/
mail
/
mh
/
contrib
/
jpeek
/
pickthis
< prev
next >
Wrap
Text File
|
1992-08-09
|
2KB
|
85 lines
#! /bin/sh
# $Header: /home/jerry/.bin/RCS/pickthis,v 1.6 92/08/10 10:56:17 jerry mh_contrib $
### pickthis - search messages (default: all) for one with same subject
### Usage: pickthis [+folder|@folder] [msgs to search]
##
## pickthis GRABS THE Subject: HEADER FROM THE CURRENT MESSAGE,
## STRIPS OFF ANY Re:, RE:, ETC. FROM THE FRONT OF THE SUBJECT,
## THEN SEARCHES FOR OTHER MESSAGES WITH THAT SUBJECT.
## IT STORES THE LIST OF MESSAGES IN THE SEQUENCE NAMED picked
## (SO YOU CAN USE THEM LATER); IT scanS THE SEQUENCE BEFORE IT QUITS.
##
## BY DEFAULT, pickthis SEARCHES ALL MESSAGES IN THE CURRENT FOLDER.
## IF YOU GIVE IT A LIST OF MESSAGES OR A FOLDER NAME, IT'LL SEARCH THOSE.
#
# NOTE TO HACKERS: TABSTOPS SET AT 4 IN THIS CODE
#
# USE AT YOUR OWN RISK. SEEMS TO WORK, BUT IT'S YOUR RESPONSIBILITY!
# PLEASE TELL ME ABOUT BUGS AND FIXES: Jerry Peek, jerry@ora.com
myname="`basename $0`"
# GET SUBJECT OF THIS MESSAGE WITHOUT ANY Re: ON FRONT.
# ESCAPE METACHARACTERS LIKE [, ], ETC.:
if subj="`scan -width 300 -format '%{subject}' cur`"
then
subj=`echo "$subj" |
sed -e '
/^[Rr][Ee]:/ {
:rezap
s/^[Rr][Ee]: *//
/^[Rr][Ee]:/b rezap
}
s/\*/\\\\*/g
s/\./\\\\./g
s/\\$/\\\\$/g
s/\]/\\\\]/g
s/\[/\\\\[/g'`
else
echo 1>&2 "$myname quitting: can't find subject of current message:
$subj"
exit 1
fi
for arg
do
case "$arg" in
[+@]*)
case "$gotfdr" in
"") gotfdr=yes ;;
*) echo "$myname quitting: '$arg': only one folder at a time!" 1>&2
exit
;;
esac
# MAKE SURE FOLDER EXISTS SO folder WON'T ASK "create?" (GRRRR...):
if [ -d `mhpath $arg` ]
then
if folder -push $arg > /dev/null
then
# SET trap TO POP FOLDER STACK:
trap 'folder -pop >/dev/null; exit' 0
trap 'echo $myname: Interrupt! Cleaning up...' 1 2 15
else
echo "$myname quitting: can't push folder $arg onto stack?" 1>&2
exit 1
fi
else
echo "$myname quitting: folder '${arg}' doesn't exist?"
exit 1
fi
;;
*) range="$range $arg" ;;
esac
done
# SEARCH FOR MESSAGE AND scan IF WE FOUND ANY. DEFAULT TO all MSGS IN FOLDER:
if pick -subject "$subj" $range -seq picked
then
# THIS exitS WITH scan'S EXIT STATUS:
scan picked
exit
else
exit 1
fi